Cognitively coaching a subject of a photograph

ABSTRACT

A method, computer system, and computer program product for cognitively coaching a user to take favorable photographs are provided. The embodiment may include determining characteristics of favorable photographs from a favorable photo database using image analysis techniques. The embodiment may also include identifying subjects in a current camera frame. The embodiment may further include identifying characteristics of a photograph from a current camera frame. The embodiment may also include determining similarities or differences between the favorable photographs and the current camera frame. The embodiment may further include generating directions that map a current state of similar characteristics to the favorable photographs.

BACKGROUND

The present invention relates, generally, to the field of computing, andmore particularly to image recognition and analysis systems.

Image recognition and analysis systems may relate to a technology thatis capable of identifying certain information from digital images suchas photographs by utilizing a computer or electrical device. Theimage-taking electrical devices may include digital cameras or mobilephones. For example, if a user takes a plurality of photographs using anelectrical device, software or hardware may cluster the photographs andsort out libraries of photographs based on the presence of certainobjects, scenery or particular individuals such as siblings, parents orfriends. Image recognition and analysis systems may be interrelated withother tasks such as scanning bar codes, identifying vehicle licenseplates or facial recognition for security purposes. The applications ofimage recognition and analysis systems are continuously expanding.

SUMMARY

According to one embodiment, a method, computer system, and computerprogram product for cognitively coaching a user to take favorablephotographs are provided. The embodiment may include determiningcharacteristics of favorable photographs from a favorable photo databaseusing image analysis techniques. The embodiment may also includeidentifying subjects in a current camera frame. The embodiment mayfurther include identifying characteristics of a photograph from acurrent camera frame. The embodiment may also include determiningsimilarities or differences between the favorable photographs and thecurrent camera frame. The embodiment may further include generatingdirections that map a current state of similar characteristics to thefavorable photographs.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

These and other objects, features, and advantages of the presentinvention will become apparent from the following detailed descriptionof illustrative embodiments thereof, which is to be read in connectionwith the accompanying drawings. The various features of the drawings arenot to scale as the illustrations are for clarity in facilitating oneskilled in the art in understanding the invention in conjunction withthe detailed description. In the drawings:

FIG. 1 illustrates an exemplary networked computer environment accordingto at least one embodiment;

FIG. 2 is an operational flowchart illustrating a cognitive photographrecommendation process according to at least one embodiment;

FIG. 3 is a functional block diagram of a cognitive photographrecommendation platform according to at least one embodiment;

FIG. 4 is an operational flowchart illustrating a cognitive photographcoaching process according to at least one embodiment;

FIG. 5 is a block diagram of internal and external components ofcomputers and servers depicted in FIG. 1 according to at least oneembodiment;

FIG. 6 depicts a cloud computing environment according to an embodimentof the present invention; and

FIG. 7 depicts abstraction model layers according to an embodiment ofthe present invention.

DETAILED DESCRIPTION

Detailed embodiments of the claimed structures and methods are disclosedherein; however, it can be understood that the disclosed embodiments aremerely illustrative of the claimed structures and methods that may beembodied in various forms. This invention may, however, be embodied inmany different forms and should not be construed as limited to theexemplary embodiments set forth herein. In the description, details ofwell-known features and techniques may be omitted to avoid unnecessarilyobscuring the presented embodiments.

Embodiments of the present invention relate to the field of computing,and more particularly to image recognition and analysis systems. Thefollowing described exemplary embodiments provide a system, method, andprogram product to, among other things, build a model which may identifyqualities of user-favorable photographs for a multitude of categoriesand coach a user to take similar-quality photographs. Therefore, thepresent embodiment has the capacity to improve the technical field ofimage recognition and analysis systems by efficiently allowing users todetermine whether a particular photograph is user-favorable orunfavorable in a number of different ways and discard less quality orunfavorable photographs, which eventually may guide users to take betterquality photographs in the future. Moreover, the present embodiment maytake into account various social groups so that photographs may beconsidered favorable or unfavorable differently given a particularaudience or social groups.

As previously described, image recognition and analysis systems mayrelate to a technology that is capable of identifying certaininformation from digital images such as photographs by utilizing acomputer or electrical device. For example, if a user takes a pluralityof photographs using an electrical device, software or hardware maycluster the photos and sort out libraries of photographs based on thepresence of certain objects, scenery or certain individuals such assiblings, parents or friends. Image recognition and analysis systems maybe interrelated with other tasks such as scanning bar codes, identifyingvehicle license plates or facial recognition for security purposes.

Today, sharing photographs has become a very important aspect ofpeople's lives. For example, thousands of photos are shared every day onsocial media sites such as Facebook® (Facebook and all Facebook-relatedtrademarks and logos are trademarks or registered trademarks ofFacebook, Inc. and/or its affiliates), Instagram® (Instagram and allInstagram-related trademarks and logos are trademarks or registeredtrademarks of Instagram, LLC. and/or its affiliates) or Snapchat®(Snapchat and all Snapchat-related trademarks and logos are trademarksor registered trademarks of Snap, Inc. and/or its affiliates). With theadvancement of digital photography utilizing a digital camera or mobilephone, unlimited numbers of photographs are taken at people'sfingertips. However, out of those unlimited number of photographs, itwould be fair to say that only a fraction of photographs taken may beconsidered good pictures. As such, it may be advantageous to, amongother things, implement a system capable of providing a method for whicha user may determine favorable photographs in various ways and allow theusers to take and keep only the favorable pictures so that the users canbetter preserve memories on user devices or a cloud environment.

According to one embodiment, user-ingested photographs may be analyzedby a cognitive photograph recommendation engine program to cluster thephotographs into different groups so that different sets of importantqualities may be considered when determining the favorability of aparticular photograph. For example, photos can be separated asindividual photos or into groups based on characteristics, such asindoor photos, outdoor photos, and selfies, etc. In at least one otherembodiment, favorable pictures may be determined based on the number oflikes it received on social media sites. Also, an embodiment may includea method for which a user may manually select a favorable picture orunfavorable pictures. Additionally, according to one embodiment,written, graphical or verbal directions may be generated to aid intaking similar-quality photographs based on the pre-determinedfavorability of the similar photographs.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer-readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or another device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The following described exemplary embodiments provide a system, method,and program product to cognitively identify favorable photographqualities and coach a subject of a photograph to emulate the favorablequalities while avoiding unfavorable qualities.

Referring to FIG. 1, an exemplary networked computer environment 100 isdepicted, according to at least one embodiment. The networked computerenvironment 100 may include client computing device 102 and a server 112interconnected via a communication network 114. According to at leastone implementation, the networked computer environment 100 may include aplurality of client computing devices 102 and servers 112 of which onlyone of each is shown for illustrative brevity.

The communication network 114 may include various types of communicationnetworks, such as a wide area network (WAN), local area network (LAN), atelecommunication network, a wireless network, a public switched networkand/or a satellite network. The communication network 114 may includeconnections, such as wire, wireless communication links, or fiber opticcables. It may be appreciated that FIG. 1 provides only an illustrationof one implementation and does not imply any limitations with regard tothe environments in which different embodiments may be implemented. Manymodifications to the depicted environments may be made based on designand implementation requirements.

Client computing device 102 may include a processor 104 and a datastorage device 106 that is enabled to host and run a software program108, a cognitive photograph recommendation engine program 110A and acognitive photograph coaching program 118A and communicate with theserver 112 via the communication network 114, in accordance with oneembodiment of the invention. Client computing device 102 may be, forexample, a mobile device, a telephone, a personal digital assistant, anetbook, a laptop computer, a tablet computer, a desktop computer, orany type of computing device capable of running a program and accessinga network. As will be discussed with reference to FIG. 5, the clientcomputing device 102 may include internal components 502 a and externalcomponents 504 a, respectively.

The server computer 112 may be a laptop computer, netbook computer,personal computer (PC), a desktop computer, or any programmableelectronic device or any network of programmable electronic devicescapable of hosting and running a cognitive photograph recommendationengine program 110B, a cognitive photograph coaching program 118B and adatabase 116 and communicating with the client computing device 102 viathe communication network 114, in accordance with embodiments of theinvention. As will be discussed with reference to FIG. 5, the servercomputer 112 may include internal components 502 b and externalcomponents 504 b, respectively. The server 112 may also operate in acloud computing service model, such as Software as a Service (SaaS),Platform as a Service (PaaS), or Infrastructure as a Service (IaaS). Theserver 112 may also be located in a cloud computing deployment model,such as a private cloud, community cloud, public cloud, or hybrid cloud.

According to the present embodiment, the cognitive photographrecommendation engine program 110A, 110B may be a program capable ofdetermining the qualities that make ideal photographs for a multitude ofcategories. The cognitive photograph recommendation engine program 110A,110B may then generate a database that maintains information relevant touser-preferable photographs. The cognitive photograph recommendationprocess is explained in further detail below with respect to FIG. 2.

According to the present embodiment, the cognitive photograph coachingprogram 118A, 118B may be a program capable of generating written,graphical or verbal directions to aid in taking similar-qualityphotographs based on the pre-determined characteristics of thephotographs stored in the personal favorable photo database. Thecognitive photograph coaching process is explained in further detailbelow with respect to FIG. 4.

FIG. 2 is an operational flowchart illustrating a cognitive photographrecommendation process 200 according to at least one embodiment. At 202,the cognitive photograph recommendation engine program 110A, 110B mayingest a user's photographs from various sources including individualpictures taken on a digital camera or mobile phone, photos from socialmedia sites such as Facebook® or Instagram®. For example, if a usertakes a selfie using a mobile phone, the user can have an option toupload the picture directly to the cognitive photograph recommendationengine program 110A, 110B or in the alternative, the user can upload thesame picture to a social media site allowing the cognitive photographrecommendation engine program 110A, 110B to download the same picturefrom the same social media site for further analysis.

At 204, the cognitive photograph recommendation engine program 110A,110B may parse the ingested photos in each cluster and analyze thephotos to determine a user's favorability of each photo. Also, accordingto one embodiment, the cognitive photograph recommendation engineprogram 110A, 110B may parse the photos and determine a user'sfavorability of each photo by identifying how many days the photos havebeen kept on a camera device or mobile phone. In at least one otherembodiment, the cognitive photograph recommendation engine program 110A,110B may determine a user's favorability of each photo by identifyinghow many likes or positive comments the photo has received on socialmedia sites. Additionally, in at least one other embodiment, thecognitive photograph recommendation engine program 110A, 110B maydetermine a user's favorability of each photo by allowing a user tomanually choose whether a particular photo is favorable or not.Furthermore, a user may preconfigure the cognitive photographrecommendation engine program 110A, 110B to identify, ignore or set athreshold value of favorability for specific clusters of photographs orthe cognitive photograph recommendation program 110A, 110B may run analgorithm to determine threshold values. For example, the cognitivephotograph recommendation engine program 110A, 110B may determine that athreshold value of 30-days storage on a camera or mobile phone isappropriate when analyzing a cluster of selfies. On the other hand, thecognitive photograph recommendation engine program 110A, 110B maydetermine that a shorter period of storage is appropriate for a clusterof scenery photos. The cognitive photograph recommendation engineprogram 110A, 110B may also set threshold values with respect tonegative or positive comments that have been received on social mediasites.

At 206, the cognitive photograph recommendation engine program 110A,110B may determine whether the number of days for which a particularphoto has been stored on a camera device or mobile phone exceeds athreshold value. For example, if a user has kept a picture of two dogsfor more than 30 days, the cognitive photograph recommendation engineprogram 110A, 110B may determine that the favorability of the photoexceeds the threshold value. If a user has kept a picture of a cat onlyfor 10 days, then the cognitive photograph recommendation engine program110A, 110B may determine that the favorability value does not exceed thethreshold value. As described above, the cognitive photographrecommendation engine program 110A, 110B may apply different sets ofthreshold values to each different cluster. According to one embodiment,if the cognitive photograph recommendation program 110A, 110B determinesthat the storage days of the photo exceeds the threshold value (step206, “Yes” branch), the cognitive photograph recommendation engineprogram 110A, 110B may continue to step 212 to tag the photos as“favorable” photos. If the cognitive photograph recommendation program110A, 110B determines that the duration of the storage does not exceedthe threshold value (step 206, “No” branch), the cognitive photographrecommendation engine program 110A, 110B may continue to step 208 todetermine if the number of likes or sentiment value exceeds apreconfigured favorability threshold.

At 208, the cognitive photograph recommendation engine program 110A,110B may determine whether the number of likes or sentiment value givento a particular photo from social media sites exceeds a preconfiguredfavorability threshold value. For example, if a user-uploaded photoreceived more than 50 likes on one of the social media sites such asFacebook® or Instagram®, the cognitive photograph recommendation engineprogram 110A, 110B may determine that the number of likes the photoreceived well exceed a preconfigured favorability threshold value andthat the photo is a favorable photo. If a photo posted on the socialmedia site received negative comments, such as, “this picture is gloomy”or “this picture is too dark”, the cognitive photograph recommendationengine program 110A, 110B may, in accordance with the preconfiguredsentiment value at 206, assign a negative value, or a value below thethreshold value. According to one embodiment, if the cognitivephotograph recommendation program 110A, 110B determines that the numberof likes or the sentiment value exceeds the threshold value (step 208,“Yes” branch), the cognitive photograph recommendation engine program110A, 110B may continue to step 212 to tag the photos as “favorable”photos. If the cognitive photograph recommendation program 110A, 110Bdetermines that the number of likes or the sentiment value does notexceed the threshold value (step 208, “No” branch), the cognitivephotograph recommendation engine program 110A, 110B may continue to step210 to determine whether a user has manually selected a photo and markedthat photo as favorable.

In at least one other embodiment, the cognitive photographrecommendation engine program 110A,110B may analyze and weighdifferently the number of likes or comments that photos received onsocial media sites based on the people who have responded to the photo.For example, the number of likes or comments that the family member of auser posted on a social media site may be weighed more heavily than thenumber of likes or comments from high school friends.

At 210, the cognitive photograph recommendation engine program 110A,110B may determine whether a user manually selected a photo and markedit as a favorable photo. Photos that do not exceed the threshold valueat step 206 or step 208 may be manually selected by a user and marked asa favorable photo. According to one embodiment, if the cognitivephotograph recommendation program 110A, 110B determines that the usermanually marked the photo as a favorable photo (step 210, “Yes” branch),the cognitive photograph recommendation engine program 110A, 110B maycontinue to step 212 to tag the photos as “favorable” photos. If thecognitive photograph recommendation program 110A, 110B determines thatthe user did not mark the photo as a favorable photo (step 210, “No”branch), the cognitive photograph recommendation engine program 110A,110B may continue to step 214 to tag the photos as “unfavorable” photos.For example, even if a selfie was deleted from a mobile device within ashort period of time and it has never received any comments or likes onany of the social media sites, a user still may elect to mark thepicture as a favorable picture and tag the picture as a “favorable”photo. This would be a desirable feature in a situation where a persondoes not have many friends on social media sites and, as such, it may bedifficult to exceed a threshold value based on the number of likes or asentiment value associated with comments.

At 212, the cognitive photograph recommendation engine program 110A,110B may tag photos that exceed the threshold value in steps 210 or 212or manually marked favorable photos as “favorable” photos. The cognitivephoto recommendation engine program 110A, 110B may assign each photo toa different set of favorable categories based on the characteristics ofthe photos. For example, a favorable picture with a dog may be assignedto a category of a picture with animals. In at least one otherembodiment, the cognitive photograph recommendation engine program 110A,110B may assign a confidence score to photos to indicate how confidentthe system is that the photo is either favorable or unfavorable.

At 214, the cognitive photograph recommendation engine program 110A,110B may tag photos that do not exceed the threshold value in steps 210or 212 or photos that are not manually marked as favorable as“unfavorable” photos. Such unfavorable photos may be assigned todifferent categories based on the characteristics of the photos. Forexample, if a user manually selects a selfie with sunglasses and marksit as an unfavorable photo, the cognitive photograph recommendationengine program 110A, 110B may tag the photo as unfavorable and assign itto a group of “unfavorable” selfie photographs.

Next, at 216, the cognitive photograph recommendation engine program110A, 110B may determine whether there are any remaining photos to beparsed. According to one implementation, the cognitive photographrecommendation process 200 may continue if a photo is not the last phototo be parsed. If the cognitive photograph recommendation engine program110A, 110B determines the photo is the last remaining photo that wasingested to be parsed (step 216, “Yes” branch), the cognitive photographrecommendation engine program 110A, 110B may continue to step 218. Ifthe cognitive photograph recommendation engine program 110A, 110Bdetermines the parsed photo is not the last remaining photo to be parsed(step 216, “No” branch), the cognitive photograph recommendation process200 may return to step 204 to parse remaining photos.

At 218, the cognitive photograph recommendation engine program 110A,110B may append the photos tagged as “favorable” and “unfavorable”photos to a photo database. For example, a favorable picture with a dogmay be stored in a database tagged as a favorable photo. An unfavorablepicture with a cat may be stored in database tagged as an unfavorablephoto. The cognitive photograph recommendation engine program 110A, 110Bmay store all the photos that have been parsed and tagged as either“favorable” or “unfavorable” in a database so that the cognitivephotograph recommendation engine program 110A, 110B may analyze andcluster the photos into different groups.

At 220, the cognitive photograph recommendation engine program 110A,110B may utilize standard statistical analysis methods to cluster thephotos appended to a photo database. The cognitive photographrecommendation engine program 110A, 110B may determine various sets ofimportant qualities specific to each cluster of the photographs.Clusters may include, but are not limited to, individual photos, photosof specific people, group photos of one or more people, indoor photos,outdoor photos, scenery photos, and selfies. For example, if a usertakes a photo containing the user and the spouse of the user, thecognitive photograph recommendation engine program 110A, 110B maycluster the photo and assign it to a “photo with spouse” group. If thesame user takes a photo with a dog, the cognitive photographrecommendation engine program 110A, 110B may cluster the photodifferently and assign it to a “photo with a dog” group. The cognitivephotograph recommendation engine program 110A, 110B may cluster thephotos and group the photos into more specific categories. For example,with respect to a photo with a dog, the more specific category mayinclude “a photo with a dog kneeling on the floor” or “a photo with twodogs lying down on the floor”.

Next at 222, the cognitive photograph recommendation engine program110A, 110B may generate classification models for each cluster. Forexample, the cognitive photograph recommendation engine program 110A,110B may analyze the characteristics of the clustered photos within aspecific category. For example, with respect to “a photo with a dogkneeling on the floor” or “a photo with two dogs lying down on thefloor”, the cognitive photograph recommendation engine program 110A,110B may generate classification models containing detailed informationas to brightness, posture of the objects, angles and/or sizes, etc.

Referring now to FIG. 3, a functional block diagram of a cognitivephotograph recommendation platform 300 is depicted according to at leaston embodiment. The cognitive photograph recommendation platform mayinclude the cognitive photograph recommendation engine program 110Ainstalled on the client computing device 102 that may ingest one or moreuser photographs. The cognitive photograph recommendation engine program110A may include a photo favorability analyzer 302 and a favorable photodatabase 306. Additionally, the photo favorability analyzer 302 mayreceive data (e.g., images) from a local device camera 306 eitherinternally installed or externally connected to the client computingdevice 102 and/or social media sites server 308. The photo favorabilityanalyzer 302 may utilize image recognition technology to determine userfavorability of the received image data. The photo favorability analyzer302 may first analyze and cluster each ingested photo into differentgroups of pictures. Once the photo favorability analyzer 302 hasdetermined clusters of the ingested photos, the photo favorabilityanalyzer 302 may apply classification models to each photo to determinefavorability of each photo. The photo favorability analyzer 302 then mayextract information from favorable photos and generate the photodatabase 304. The photo favorability analyzer 302 may also receivephotos captured by a local device camera 306 and manually supplementedby the user through a graphical user interface.

Referring now to FIG. 4, an operational flowchart illustrating acognitive photograph coaching process 400 is depicted according to atleast one embodiment. At 402, the cognitive photograph coaching program118A, 118B scans and extract characteristics of the favorable photosfrom the personal “favorable” photo database. As described above, thecognitive photograph recommendation engine program 110A, 110B maygenerate personal “favorable” photo database and personal “unfavorable”photo database. According to one embodiment, the cognitive photographcoaching program 118A, 118B may extract characteristics from aparticular cluster of pictures stored in the personal “favorable” photodatabase. For example, the cognitive photograph coaching program 118A,118B may extract characteristics from a particular cluster of picturesdepicting a person with an animal, such as, the person's pose orposition, head angle, or facial features. Additionally, in at least oneother embodiment, a user may manually select a favorable photo to bescanned and extracted. For example, a user may select a photo that auser wishes to emulate or the cognitive photograph coaching program118A, 118B may select the most similar favorable photo from the databaseto a photo being taken in a current camera frame.

At 404, the cognitive photograph coaching program 118A, 118B mayinteract with a user device, such as a digital camera or a mobile phone,to identify subjects in a current camera frame. For example, if a usertries to take a picture of a dog sitting on a bench, the cognitivephotograph coaching program 118A, 118B may identify a subject “dog” andanother subject “a bench”. The cognitive photograph coaching program118A, 118B may also identify non-subjects such as an amount of lightexposure, colors of the background, colors of the subjects, and overalllayout of the picture, etc.

At 406, the cognitive photograph coaching program 118A, 118B mayidentify characteristics of a photograph from a current camera frame.For example, with respect to the picture of a dog sitting on a bench,the cognitive photograph coaching program 118A, 118B may identify theposition and pose of the dog, the position of the bench in the cameraframe, and the head angle of the dog, etc. The cognitive photographcoaching program 118A, 118B may also identify overall layout of thepicture, the amount of light exposure, and the characteristics of thebackground.

At 408, the cognitive photograph coaching program 118A, 118B maydetermine similarities or differences between the favorable photos andthe current photo. For example, the cognitive photograph coachingprogram 118A, 118B may compare the head angle of the dog, the positionof the bench and the light exposure in the camera frame to thepre-identified characteristics of the similar picture from the personal“favorable” photo database. For example, if the picture of the dogsitting on a bench seems dark compared to a favorable similar photo dueto lack of sufficient light exposure, the cognitive photograph coachingprogram 118A, 118B may determine and calculate the error rate betweenthe light exposure in the two photos. If the dog in the picture is notfacing toward the lens of the camera, the cognitive photograph coachingprogram 118A, 118B may calculate the error rate with respect to theangle of the dog face. In at least one other embodiment, the cognitivephotograph coaching program 118A, 118B may preconfigure acceptableranges of error rates and set a threshold value for each characteristic.

At 410, the cognitive photograph coaching program 118A, 118B maygenerate directions that map the current state of similarcharacteristics to the favorable photos. For example, if the head angleof the dog is more toward left than a dog's head angle in a photo chosenfrom the personal “favorable” photo database, the cognitive photographcoaching program 118A, 118B may generate and transmit the instruction toa user that the user needs to change and move the dog's head angletoward right before the user hits the take button. According to oneembodiment, the cognitive photograph coaching program 118A, 118B maygenerate and transmit the instructions verbally, graphically, or inwriting. For example, the cognitive photograph coaching program 118A,118B may transmit the instruction “move the dog's head angle” verballyand the user may hear the voice through the user device or the cognitivephotograph coaching program 118A, 118B may transmit the same instructiongraphically or in writing by displaying the message on the displayscreen of the user device or the camera frame.

Next, at 412, the cognitive photograph coaching program 118A, 118B maydetermine whether the error between the favorable and the photocurrently being taken is within an acceptable threshold determined atstep 408. According to one implementation, the cognitive photographcoaching process 400 may continue if an error rate is not within anacceptable threshold. If the cognitive photograph coaching program 118A,118B determines the error rate is within an acceptable threshold (step412, “Yes” branch), the cognitive photograph coaching process 400 mayterminate. If the cognitive photograph coaching program 118A, 118Bdetermines the error rate is not within an acceptable threshold (step412, “No” branch), the cognitive photograph coaching process 400 maycontinue to step 410 to general additional instructions to reduce theerror rate. For example, when a user follows the instructions and triesto adjust the dog's head angle, the cognitive photograph coachingprogram 118A, 118B may repeat the process by continuously generating theinstructions to move the dog's head angle until the dog's head angle isfinally within an acceptable threshold which was preconfigured byidentifying the characteristics of photos from the personal “favorable”photo database.

In at least one other embodiment, the cognitive photograph coachingprogram 118A,118B may extract characteristics from photographs takenindividually or portions of photographs in a series and help createfavorable composite photos. For example, if a user took five differentphotographs of the user family's holiday portrait, the cognitivephotograph coaching program 118A, 118B may generate the instructions toeach family member in each version of the portrait so that the bestfinal composite photograph can be put together.

It may be appreciated that FIGS. 2-4 provide only an illustration of oneimplementation and do not imply any limitations with regard to howdifferent embodiments may be implemented. Many modifications to thedepicted environments may be made based on design and implementationrequirements. For example, in at least one embodiment, the cognitivephotograph recommendation engine program 110A, 110B may ingest andanalyze photos transmitted via instant messaging systems or email.Additionally, in at least one other embodiment, the cognitive photographrecommendation engine program 110A, 110B may interact with otherphotographs received from family members, friends or public or photosdirectly downloaded from cloud-computing platforms.

FIG. 5 is a block diagram 500 of internal and external components of theclient computing device 102 and the server 112 depicted in FIG. 1 inaccordance with an embodiment of the present invention. It should beappreciated that FIG. 5 provides only an illustration of oneimplementation and does not imply any limitations with regard to theenvironments in which different embodiments may be implemented. Manymodifications to the depicted environments may be made based on designand implementation requirements.

The data processing system 502, 504 is representative of any electronicdevice capable of executing machine-readable program instructions. Thedata processing system 502, 504 may be representative of a smart phone,a computer system, PDA, or other electronic devices. Examples ofcomputing systems, environments, and/or configurations that mayrepresented by the data processing system 502, 504 include, but are notlimited to, personal computer systems, server computer systems, thinclients, thick clients, hand-held or laptop devices, multiprocessorsystems, microprocessor-based systems, network PCs, minicomputersystems, and distributed cloud computing environments that include anyof the above systems or devices.

The client computing device 102 and the server 112 may includerespective sets of internal components 502 a,b and external components504 a,b illustrated in FIG. 5. Each of the sets of internal components502 include one or more processors 520, one or more computer-readableRAMs 522, and one or more computer-readable ROMs 524 on one or morebuses 526, and one or more operating systems 528 and one or morecomputer-readable tangible storage devices 530. The one or moreoperating systems 528, the software program 108, the cognitivephotograph recommendation engine program 110A and the cognitivephotograph coaching program 118A in the client computing device 102 andthe cognitive photograph recommendation engine program 110B and thecognitive photograph coaching program 118B in the server 112 are storedon one or more of the respective computer-readable tangible storagedevices 530 for execution by one or more of the respective processors520 via one or more of the respective RAMs 522 (which typically includecache memory). In the embodiment illustrated in FIG. 5, each of thecomputer-readable tangible storage devices 530 is a magnetic diskstorage device of an internal hard drive. Alternatively, each of thecomputer-readable tangible storage devices 530 is a semiconductorstorage device such as ROM 524, EPROM, flash memory or any othercomputer-readable tangible storage device that can store a computerprogram and digital information.

Each set of internal components 502 a,b also includes an R/W drive orinterface 532 to read from and write to one or more portablecomputer-readable tangible storage devices 538 such as a CD-ROM, DVD,memory stick, magnetic tape, magnetic disk, optical disk orsemiconductor storage device. A software program, such as the cognitivephotograph recommendation engine program 110A, 110B and the cognitivephotograph coaching program 118A, 118B, can be stored on one or more ofthe respective portable computer-readable tangible storage devices 538,read via the respective R/W drive or interface 532 and loaded into therespective hard drive 530.

Each set of internal components 502 a,b also includes network adaptersor interfaces 536 such as a TCP/IP adapter cards, wireless Wi-Fiinterface cards, or 3G or 4G wireless interface cards or other wired orwireless communication links. The software program 108, the cognitivephotograph recommendation engine program 110A and the cognitivephotograph coaching program 118A in the client computing device 102 andthe cognitive photograph recommendation engine program 110B and thecognitive photograph coaching program 118B in the server 112 can bedownloaded to the client computing device 102 and the server 112 from anexternal computer via a network (for example, the Internet, a local areanetwork or other, wide area network) and respective network adapters orinterfaces 536. From the network adapters or interfaces 536, thesoftware program 108, the cognitive photograph recommendation engineprogram 110A and the cognitive photograph coaching program 118A in theclient computing device 102 and the cognitive photograph recommendationengine program 110B and the cognitive photograph coaching program 118Bin the server 112 are loaded into the respective hard drive 530. Thenetwork may comprise copper wires, optical fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers.

Each of the sets of external components 504 a,b can include a computerdisplay monitor 544, a keyboard 542, and a computer mouse 534. Externalcomponents 504 a,b can also include touch screens, virtual keyboards,touch pads, pointing devices, and other human interface devices. Each ofthe sets of internal components 502 a,b also includes device drivers 540to interface to computer display monitor 544, keyboard 542, and computermouse 534. The device drivers 540, R/W drive or interface 532, andnetwork adapter or interface 536 comprise hardware and software (storedin storage device 530 and/or ROM 524).

It is understood in advance that although this disclosure includes adetailed description on cloud computing, implementation of the teachingsrecited herein is not limited to a cloud computing environment. Rather,embodiments of the present invention are capable of being implemented inconjunction with any other type of computing environment now known orlater developed.

Cloud computing is a model of service delivery for enabling convenient,on-demand network access to a shared pool of configurable computingresources (e.g. networks, network bandwidth, servers, processing,memory, storage, applications, virtual machines, and services) that canbe rapidly provisioned and released with minimal management effort orinteraction with a provider of the service. This cloud model may includeat least five characteristics, at least three service models, and atleast four deployment models.

Characteristics are as follows:

On-demand self-service: a cloud consumer can unilaterally provisioncomputing capabilities, such as server time and network storage, asneeded automatically without requiring human interaction with theservice's provider.

Broad network access: capabilities are available over a network andaccessed through standard mechanisms that promote use by heterogeneousthin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

Resource pooling: the provider's computing resources are pooled to servemultiple consumers using a multi-tenant model, with different physicaland virtual resources dynamically assigned and reassigned according todemand. There is a sense of location independence in that the consumergenerally has no control or knowledge over the exact location of theprovided resources but may be able to specify location at a higher levelof abstraction (e.g., country, state, or datacenter).

Rapid elasticity: capabilities can be rapidly and elasticallyprovisioned, in some cases automatically, to quickly scale out andrapidly released to quickly scale in. To the consumer, the capabilitiesavailable for provisioning often appear to be unlimited and can bepurchased in any quantity at any time.

Measured service: cloud systems automatically control and optimizeresource use by leveraging a metering capability at some level ofabstraction appropriate to the type of service (e.g., storage,processing, bandwidth, and active user accounts). Resource usage can bemonitored, controlled, and reported providing transparency for both theprovider and consumer of the utilized service.

Service Models are as follows:

Software as a Service (SaaS): the capability provided to the consumer isto use the provider's applications running on a cloud infrastructure.The applications are accessible from various client devices through athin client interface such as a web browser (e.g., web-based email). Theconsumer does not manage or control the underlying cloud infrastructureincluding network, servers, operating systems, storage, or evenindividual application capabilities, with the possible exception oflimited user-specific application configuration settings.

Platform as a Service (PaaS): the capability provided to the consumer isto deploy onto the cloud infrastructure consumer-created or acquiredapplications created using programming languages and tools supported bythe provider. The consumer does not manage or control the underlyingcloud infrastructure including networks, servers, operating systems, orstorage, but has control over the deployed applications and possiblyapplication hosting environment configurations.

Infrastructure as a Service (IaaS): the capability provided to theconsumer is to provision processing, storage, networks, and otherfundamental computing resources where the consumer is able to deploy andrun arbitrary software, which can include operating systems andapplications. The consumer does not manage or control the underlyingcloud infrastructure but has control over operating systems, storage,deployed applications, and possibly limited control of select networkingcomponents (e.g., host firewalls).

Deployment Models are as follows:

Private cloud: the cloud infrastructure is operated solely for anorganization. It may be managed by the organization or a third party andmay exist on-premises or off-premises.

Community cloud: the cloud infrastructure is shared by severalorganizations and supports a specific community that has shared concerns(e.g., mission, security requirements, policy, and complianceconsiderations). It may be managed by the organizations or a third partyand may exist on-premises or off-premises.

Public cloud: the cloud infrastructure is made available to the generalpublic or a large industry group and is owned by an organization sellingcloud services.

Hybrid cloud: the cloud infrastructure is a composition of two or moreclouds (private, community, or public) that remain unique entities butare bound together by standardized or proprietary technology thatenables data and application portability (e.g., cloud bursting forload-balancing between clouds).

A cloud computing environment is a service oriented with a focus onstatelessness, low coupling, modularity, and semantic interoperability.At the heart of cloud computing is an infrastructure comprising anetwork of interconnected nodes.

Referring now to FIG. 6, illustrative cloud computing environment 50 isdepicted. As shown, cloud computing environment 50 comprises one or morecloud computing nodes 100 with which local computing devices used bycloud consumers, such as, for example, personal digital assistant (PDA)or cellular telephone 54A, desktop computer 54B, laptop computer 54C,and/or automobile computer system 54N may communicate. Nodes 100 maycommunicate with one another. They may be grouped (not shown) physicallyor virtually, in one or more networks, such as Private, Community,Public, or Hybrid clouds as described hereinabove, or a combinationthereof. This allows cloud computing environment 50 to offerinfrastructure, platforms and/or software as services for which a cloudconsumer does not need to maintain resources on a local computingdevice. It is understood that the types of computing devices 54A-N shownin FIG. 6 are intended to be illustrative only and that computing nodes100 and cloud computing environment 50 can communicate with any type ofcomputerized device over any type of network and/or network addressableconnection (e.g., using a web browser).

Referring now to FIG. 7, a set of functional abstraction layers 700provided by cloud computing environment 50 is shown. It should beunderstood in advance that the components, layers, and functions shownin FIG. 6 are intended to be illustrative only and embodiments of theinvention are not limited thereto. As depicted, the following layers andcorresponding functions are provided:

Hardware and software layer 60 includes hardware and softwarecomponents. Examples of hardware components include: mainframes 61; RISC(Reduced Instruction Set Computer) architecture based servers 62;servers 63; blade servers 64; storage devices 65; and networks andnetworking components 66. In some embodiments, software componentsinclude network application server software 67 and database software 68.

Virtualization layer 70 provides an abstraction layer from which thefollowing examples of virtual entities may be provided: virtual servers71; virtual storage 72; virtual networks 73, including virtual privatenetworks; virtual applications and operating systems 74; and virtualclients 75.

In one example, management layer 80 may provide the functions describedbelow. Resource provisioning 81 provides dynamic procurement ofcomputing resources and other resources that are utilized to performtasks within the cloud computing environment. Metering and Pricing 82provide cost tracking as resources are utilized within the cloudcomputing environment, and billing or invoicing for consumption of theseresources. In one example, these resources may comprise applicationsoftware licenses. Security provides identity verification for cloudconsumers and tasks, as well as protection for data and other resources.User portal 83 provides access to the cloud computing environment forconsumers and system administrators. Service level management 84provides cloud computing resource allocation and management such thatrequired service levels are met. Service Level Agreement (SLA) planningand fulfillment 85 provide pre-arrangement for, and procurement of,cloud computing resources for which a future requirement is anticipatedin accordance with an SLA.

Workloads layer 90 provides examples of functionality for which thecloud computing environment may be utilized. Examples of workloads andfunctions which may be provided from this layer include: mapping andnavigation 91; software development and lifecycle management 92; virtualclassroom education delivery 93; data analytics processing 94;transaction processing 95; and cognitive photograph recommendation 96.Cognitive photograph recommendation 96 may relate generating a databaseof personal favorable and unfavorable photographs previously entered bya user, monitoring various databases or social media sites for favorablephotographs so that cognitive photograph recommendation 96 may determinethe characteristics of the favorable photographs.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration but are not intended tobe exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

What is claimed is:
 1. A processor-implemented method for cognitivelycoaching a user to take favorable photographs, the method comprising:determining characteristics of favorable photographs from a favorablephoto database using image analysis techniques; identifying subjects ina current camera frame; identifying characteristics of a photograph froma current camera frame; determining similarities or differences betweenthe favorable photographs and the current camera frame; and generatingdirections that map a current state of similar characteristics to thefavorable photographs.
 2. The method of claim 1, wherein the generateddirections are transmitted verbally, graphically or in writing to adisplay screen of a user device.
 3. The method of claim 1, wherein thecharacteristics of the favorable photographs to emulate are manuallyselected by a user.
 4. The method of claim 1, wherein a basis fordetermining the characteristics from the favorable photographs isselected from a group consisting of pose, position, head angle andfacial features.
 5. The method of claim 1, further comprising:determining characteristics from photographs taken individually orportions of photographs in a series; and creating a composite photographbased on the favorable characteristics of portions of each photograph.6. The method of claim 1, further comprising: determining whether anerror between a favorable photograph and the current camera frame iswithin a preconfigured acceptable threshold; and repeating directionsthat map the current state of the similar characteristics to thefavorable photos until the error reaches a preconfigured acceptablethreshold.
 7. The method of claim 6, wherein an acceptable threshold ismanually configured.
 8. A computer system for cognitively coaching auser to take favorable photographs, the method comprising: determiningcharacteristics of favorable photographs from a favorable photo databaseusing image analysis techniques; identifying subjects in a currentcamera frame; identifying characteristics of a photograph from a currentcamera frame; determining similarities or differences between thefavorable photographs and the current camera frame; and generatingdirections that map a current state of similar characteristics to thefavorable photographs.
 9. The computer system of claim 8, wherein thegenerated directions are transmitted verbally, graphically or in writingto a display screen of a user device.
 10. The computer system of claim8, wherein the characteristics of the favorable photographs to emulateare manually selected by a user.
 11. The computer system of claim 8,wherein a basis for determining the characteristics from the favorablephotographs is selected from a group consisting of pose, position, headangle and facial features.
 12. The computer system of claim 8, furthercomprising: determining characteristics from photographs takenindividually or portions of photographs in a series; and creating acomposite photograph based on the favorable characteristics of portionsof each photograph.
 13. The computer system of claim 8, furthercomprising: determining whether an error between a favorable photographand the current camera frame is within a preconfigured acceptablethreshold; and repeating directions that map the current state of thesimilar characteristics to the favorable photos until the error reachesa preconfigured acceptable threshold.
 14. The computer system of claim13, wherein an acceptable threshold is manually configured.
 15. Acomputer program product for cognitively coaching a user to takefavorable photographs, the method comprising: determiningcharacteristics of favorable photographs from a favorable photo databaseusing image analysis techniques; identifying subjects in a currentcamera frame; identifying characteristics of a photograph from a currentcamera frame; determining similarities or differences between thefavorable photographs and the current camera frame; and generatingdirections that map a current state of similar characteristics to thefavorable photographs.
 16. The computer program product of claim 15,wherein the generated directions are transmitted verbally, graphicallyor in writing to a display screen of a user device.
 17. The computerprogram product of claim 15, wherein the characteristics of thefavorable photographs to emulate are manually selected by a user. 18.The computer program product of claim 15, wherein a basis fordetermining the characteristics from the favorable photographs isselected from a group consisting of pose, position, head angle andfacial features.
 19. The computer program product of claim 15, furthercomprising: determining characteristics from photographs takenindividually or portions of photographs in a series; and creating acomposite photograph based on the favorable characteristics of portionsof each photograph.
 20. The computer program product of claim 15,further comprising: determining whether an error between a favorablephotograph and the current camera frame is within a preconfiguredacceptable threshold; and repeating directions that map the currentstate of the similar characteristics to the favorable photos until theerror reaches a preconfigured acceptable threshold.